﻿using System;
using biz.ritter.javapi.lang;
using Nofs.Net.Common.Interfaces.Cache;
using Nofs.Net.nofs.metadata.interfaces;
using Nofs.Net.Common.Interfaces.Domain;
using Nofs.Net.Common.Interfaces.Library;


namespace Nofs.Net.Common.Interfaces.Factories
{
    public interface IPersistenceFactory : IPersistenceFactory<object>
    {
    }

    public interface IPersistenceFactory<T>
    {
        IStatMapper CreateStatMapper(
                String objectStore, String metdataStore,
                Class fileObjectStatClass, ILogManager logManager);//throws Exception;

        IDomainObjectContainerManagerInternal<T> CreateContainerManager(
                String objectStore, String metdataStore, ILogManager logManager,
                IStatMapper statMapper, IKeyCache keyCache, IFileObjectFactory fileObjectFactory,
                IAttributeAccessor attributeAccessor);  //throws Exception;

        IKeyCache CreateKeyCache(String objectStore, String metdataStore, ILogManager logManager);// throws Exception;
    }

}
